package com.hsm6;

public class Test {
    public static void main(String[] args) {
        final int A = 10;
        //a = 20;final修饰的是基本数据类型


        final Dog dou = new Dog();
        //dou = new Dog();final修饰的是引用数据类型，也不可以改变
        //这是一个引用数据类型，可以给他重新new一个空间，引用指向也可以发生改变
        //地址的值不可以发生改变
        dou.age = 10;
        dou.weight = 12.5;
        //地址不能改变，属性是可以改变的

        final Dog hei = new Dog();
        a(hei);
        }
        public static void a(Dog dog) {
            dog = new Dog();//dog对象可以重新进行引用，
            //内存分析：因为hei将他的内存地址传给了形参，形参在内存空间的栈中也有自己的空间，因此可以重新指向
        }
        public static void b(final Dog dog) {
         //dog = new Dog();
            // 因为形参被final修饰了，因此地址也不能进行改变
        }

}
